<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  <textarea class="txt1"></textarea>
  <input type="button" value="发送" class="send">
  <textarea class="txt2" readonly></textarea>
</body>
<script>
  // 字符去重
  function noRepeat(origin){
    var s = "";
    for(var i=0;i<origin.length;i++){
      if(s.indexOf( origin[i] ) === -1){
        s += origin[i];
      }
    }
    return s;
  }
  // var str = "aabcdabcddbcaaaa";
  // var res = noRepeat(str);
  // console.log(str);
  // console.log(res);


  // 统计每个字符出现的次数
  function count(origin){
    var obj = {};
    // 遍历字符串，拿到每个字符
    for(var i=0;i<origin.length;i++){
      // 判断对象中是否存在该字符对应的属性
      if( obj[origin[i]] ){
        // 如果有该字符对应的属性，那就将对象这个属性的值 ++
        obj[origin[i]]++
      }else{
        // 如果没有该字符对应的属性，那就给对象添加这个属性，值为1
        obj[origin[i]] = 1;
      }
    }
    return obj;
  }
  // var str = "abcdbcaabcda";
  // var res = count(str);
  // console.log(str);
  // console.log(res);


  // 敏感词过滤
  var txt1 = $(".txt1");
  var send = $(".send");
  var txt2 = $(".txt2");
  // 敏感词库
  var arr = ["666", "哈哈", "&"];

  send.onclick = function(){
    var str = txt1.value;
    // 遍历敏感词库，拿到每个敏感词
    arr.forEach(function(val){
      // for(var i=0;i<str.length;i++){
      //   str = str.replace(val, "***");
      // }
      // 根据字符串是否还存在当前敏感词，决定是否需要重复替换
      while( str.indexOf(val) !== -1 ){
        // 替换字符后，覆盖原变量
        str = str.replace(val, "***");
      }
    });
    // 将结果设置到页面
    txt2.value = str;
  }

  function $(s){
    return document.querySelector(s)
  }


  // 数组操作
  var arr = [{
    name: "张三",
    age: 19,
    sex: "男",
    hobby: ["篮球", "喝酒", "乒乓球"],
    integral: 90
  },{
    name: "大张四",
    age: 25,
    sex: "男",
    hobby: ["抽烟", "足球", "乒乓球"],
    integral: 80
  },{
    name: "王五",
    age: 22,
    sex: "女",
    hobby: ["篮球", "烫头", "唱歌"],
    integral: 100
  },{
    name: "张六",
    age: 18,
    sex: "女",
    hobby: ["跳舞", "足球", "rap"],
    integral: 85
  }];
  // a. 筛选出所有喜欢打篮球的人员，以新数组存放
  var res = arr.filter(function(val){
    return val.hobby.includes("篮球")
  })
  // console.log(res);

  // b. 计算所有人员的总分，数值
  var res = arr.reduce(function(prev, val){
    return prev + val.integral;
  }, 0);
  // console.log(res);

  // c. 按照年龄升序排序，以新数组存放
  var res = arr.slice(0).sort(function(a,b){
    return a.age - b.age;
  })
  // console.log(res);

  // d. 给所有的男性的积分（integral）+10分，修改原数组
  arr.forEach(function(val){
    val.integral += 10;
  })

  console.log(arr);
</script>
</html>